iT邦幫忙

2023 iThome 鐵人賽

DAY 2
1
自我挑戰組

30天開啟.NET後端工程師的旅程系列 第 2

Day2 Hello C# 寫下你的第一個C#程式

  • 分享至 

  • xImage
  •  

前言

C#(C Sharp)由微軟公司開發。大致上有下面幾個地方可以使用它:

  1. 跨平台應用程序開發:C#可以用於開發跨平台的應用程序。
  2. .NET框架:C#是.NET框架的一部分,包括Web應用程序、桌面應用程序和服務。
  3. 適用於多種應用程序:C#適用於各種不同的應用程序,從桌面應用程序(例如Windows Forms和WPF)到Web應用程序(例如ASP.NET)以及遊戲開發(例如Unity引擎)都可以使用C#來實現。

上面前言就像上課教課書的內容一樣,基本上這些資訊都可以上網找的到,接下來後面的內容都會是要成為.NET後端工程師,需要會的基礎知識。

那重點是要怎麼開始寫C#的程式碼呢???

如果 你或多或少有接觸到任何的程式語言,第一個你會遇到的事情通常是會被要求輸出一個 "Hello World!" 的訊息。

Hello World!是我們在證明可以寫出第一句程式碼時候使用的問候語,就像是程式碼在跟你打招呼,說我剛來到這個世界,請告訴我可以怎麼做?

然後我們就開始用一連串的語法給他命令,告訴他我希望你輸出甚麼?

(按照Day1 環境建置建置新專案的方式產生下圖的畫面內容,專案名稱,因為只是練習,所以這邊沒有修改只有使用ConsoleApp1)
https://ithelp.ithome.com.tw/upload/images/20230914/20151470dItVgXJNzY.png
首先,讓我們看看 "Hello World!" 的程式碼是如何寫的:

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

這段程式碼可以分成以下幾個部分:

  1. namespace ConsoleApp1:這是一個命名空間的聲明。命名空間是一種用來組織和管理程式碼的方式,它可以包含多個類別和其他程式碼元素。在這個範例中,我們定義了一個名為 "ConsoleApp1" 的命名空間,也就是在剛建立專案的時候,我當時設定的專案名稱。
  2. internal class Program:這是一個類別的聲明。在這裡,我們定義了一個名為 "Program" 的類別。這個類別包含了我們的程式碼的主要邏輯。使用 "internal" 修飾詞表示這個類別只能在相同的組件(或程式集合)中訪問,這是C#中的一個可訪問性層級(後面會再慢慢解釋)。
  3. static void Main(string[] args):這是程式的進入點。每個C#程式都需要一個 "Main" 方法,它是程式啟動後第一個執行的方法。
    在Main後面呢則是當有人啟動你的程式碼的時候,會執行下面的程式碼內容。我們給予命令,程式運作就會從上到下的開始執行我們給予的命令,也就是說所有的程式邏輯都會從這裡開始執行。
  4. Console.WriteLine("Hello, World!");:這行程式碼負責輸出 "Hello, World!" 到控制台。Console 是C#中用於處理控制台輸出和輸入的類別,WriteLine 是其中一個方法,它將文本輸出到控制台並換行。

總之,上面看到這一小段程式碼主要是在控制台中顯示 "Hello, World!" 這個訊息。

當你執行這個程式時,它會一行行的執行我們上面的這些指令,從命名空間開始,再來進入類別,接著執行 "Main" 方法,最後輸出 "Hello, World!" 到控制台,這就是你產生的第一個程式碼。

在這裡做重點提醒!!

  • 程式碼撰寫的位置是在Main的一對大括號之間喔!
  • 每段程式必須使用分號做結尾,如果忘記加會無法執行,像我自己最初在學習的時候忘記了好幾次,久了就記得了。
  • C#程式碼是有區分大小寫的喔,大小寫打錯是不行的喔!錯誤的時候會看到文字下方有紅色波浪符號提醒這裡有錯誤,建置錯誤也會像Day1寫的建置失敗有幾個(想當初看到破百的錯誤的時候,整個心涼涼阿.…)
    錯誤訊息如下圖,有紅波浪,滑鼠移上去可以看到錯誤訊息。
    https://ithelp.ithome.com.tw/upload/images/20230914/20151470YAxLj7Ea9D.png

再來就像是要開始學一門語言,會要知道字母,數字,詞語再來才能寫出完整的句子。

開始是對C# 內建類型 的了解摟~

常用的基本資料型別有很多

資料型態

  • 數字(整數int、浮點數float)
  • 文字(char, string)
  • 布林(bool)
  • 日期(DateTime)
  • 物件(Object)

在使用變數命名的時候有幾個提醒的重點:

  • 變數命名規則: 變數名稱通常使用駝峰式命名法,像駱駝背上的雙峰一樣,以小寫字母開始,中間不應有空格,使用駝峰式命名,像firstName,totalPrice之類的,而且名稱不可以亂取,是有描述作用的,讓其他人一看就方便理解。

  • 也可以使用底線_開頭,但不可以使用數字開頭

  • /*這裡面可以多行註解*/則是可以多行註解,多行註解或取消註解就會如Day 1的快捷鍵描述的一樣,程式碼會直接忽略裡面內容的存在。

數字類的基本型別

整數int的範圍:

在C#中,整數可以表示的範圍取決於其資料型別。最常見的整數資料型別是 int,它可以表示約 -2.1 億到 2.1 億之間的整數。如果需要更大的範圍,可以使用 long 資料型別,它可以表示更大的整數值。

宣告整數變數:
int age = 20;
(在程式碼裡面,//這兩條斜線後面綠色字的內容就是註解的內容,電腦在閱讀的時候會跳過這些註解不執行。)
https://ithelp.ithome.com.tw/upload/images/20230914/20151470Fsm8amYTWE.png

變數的值可以變動:
如果我現在不在宣告的變數給予值,也是可以的,如下圖所示,可以持續變動值。
先宣告一個變數是年紀,裡面再把值放進去,最後看看這個變數裡面有甚麼,就可以看到主控台輸出20,也就是我們賦予這個變數的值。
https://ithelp.ithome.com.tw/upload/images/20230914/20151470TW2F8MKCEi.png

同一行宣告多個同樣型別變數也是可以的,如下
https://ithelp.ithome.com.tw/upload/images/20230914/20151470W6BdXWee8G.png

有數字就會遇到需要進行運算的時候,一樣是先乘除後加減,有小括號就會比乘跟除更優先的去進行計算。
比較要注意的是,如果兩個整數相除會產生小數,一律先無條件捨去,的到整數的結果回傳。
https://ithelp.ithome.com.tw/upload/images/20230914/20151470lHLKZa8UQ8.png
先乘除後加減(2跟3相乘,1+6-5 =2)
https://ithelp.ithome.com.tw/upload/images/20230914/20151470g5d0iIDNav.png
如果給定是整數相除(24除以5=4.8,無條件捨去所以是4)
https://ithelp.ithome.com.tw/upload/images/20230914/201514700HNjby8WWt.png
先給定變數再相加也可以喔,原本price是整數型別,裡面是100,100+100再放到price這個變數裡面,這樣輸出的答案就會是200。
https://ithelp.ithome.com.tw/upload/images/20230914/20151470O9rVQrgfAH.png
特別的符號 % 求餘數,像是有三顆糖果平均分給兩個小朋友,一人一個還會剩一個,剩下的1個就會是餘數的答案,3%2=1
https://ithelp.ithome.com.tw/upload/images/20230914/20151470XogwYgvj7K.png

講到數字計算就可能會遇到OverFlow 溢位
整數太大大到滿出來,就會變成負的,剛剛上面提到,整數的範圍是在正負21億裡面,所以66666跟66666相乘就會超過,這時候就可以看到圖片裡面有寫OverFlow,整數的範圍就像杯子的容量一樣,相乘之後的量,超過就滿出來了。
https://ithelp.ithome.com.tw/upload/images/20230914/20151470emPsnV1i4c.png

那有可能會遇到需要將兩個數值進行對調,這時候就需要一個臨時變數temp來完成。

int a = 5;
int b = 10;

int temp = a;  // 將a的值存儲在temp中
a = b;         // 將b的值賦給a
b = temp;      // 將temp中的值賦給b,這樣a和b的值就完成了對調

執行結果是 a 的值變成 10,而 b 的值變成 5,它們兩個的值完成了對調。

想像有兩個玩具盒子,一個是 a 盒子,裡面有 5 顆糖果,另一個是b 盒子,裡面有 10 顆糖果。

  1. 我們需要一個臨時的空盒子 temp 來協助我們。現在,把 a 盒子的糖果全部倒進 temp 盒子,temp 盒子裡有 5 顆糖果,a 盒子變空了。
  2. 接下來,把 b 盒子的糖果全部倒進 a 盒子,現在 a 盒子裡有 10 顆糖果,而 b 盒子變空了。
  3. 最後,把 temp 盒子的糖果全部倒進 b 盒子,現在 b 盒子裡有 5 顆糖果。

這樣,a 盒子和 b 盒子的糖果數量就完成了對調!這就是對調兩個數值的方式,就像是將兩個盒子的內容互相交換一樣簡單。


關於數字型態部分到這邊告一個小段落。
簡單的幾題

  1. 如果一個整數超過了 int 資料型別的範圍,會發生什麼?
  2. 用上面撰寫C#程式碼的方式,計算出並顯示1+2+3+...+9+10的總和?
  3. 用上面撰寫C#程式碼的方式,計算出199跟200分別是奇數或偶數。

運用上面描述得關於數字相關內容,簡單的三題,那就明天再來回答搂~


上一篇
Day 1 Day 1 環境建置
下一篇
Day3 資料型態 - 字串串呀串
系列文
30天開啟.NET後端工程師的旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言